/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Negocio;

import entidades.Cita;
import entidades.Enfermedad;
import entidades.HistoriaClinica;
import entidades.ListaDeEspera;
import entidades.ListaEnfermedades;
import entidades.Medico;
import entidades.Mensaje;
import entidades.Paciente;
import entidades.Usuario;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Pablo
 */
@Stateless
public class Negocio implements InterfazNegocio {

    @PersistenceContext(unitName = "HospitalPU")
    private EntityManager em;
    @Override
    public Error registrarUsuario(Usuario u) {
      Usuario user = em.find(Usuario.class, u.getDni());
        if (user != null)
        {
            // El usuario ya existe
            return Error.ERROR_USUARIO_REPETIDO;
        }
       
        em.persist(u);
        
        return Error.NO_ERROR;  
    }

    @Override
    public Error compruebaLogin(Usuario u) {
    Usuario user = em.find(Usuario.class, u.getDni());
        if (user == null)
        {
            return Error.ERROR_USUARIO_INESISTENTE;
        }
        
        
        if (user.getPassword().equals(u.getPassword()))
        {
            return Error.NO_ERROR;
        }
        else
        {
            return Error.CONTRASEÑA_ERRONEA;
        }
        
    }    
    @Override
    public Usuario refrescarUsuario(Usuario u) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error modificar_Datos_Personales(Usuario u) {
       
        Error e = compruebaLogin(u);
        
        if (e != Error.NO_ERROR)
        {
            return e;
        }
        
        em.merge(u);
        return Error.NO_ERROR;
    }

    @Override
    public Error insertar_Lista_Espera(Paciente p, ListaDeEspera l) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error eliminarUsuario(Usuario u) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error insertar_Lista_Paciente(Paciente p) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error eliminar_Paciente_Lista_Espera(Paciente p, ListaDeEspera l) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error modificar_Historia_Clinica(HistoriaClinica c) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error mandar_mensaje(Mensaje m, Usuario u) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error eliminar_mensaje(Mensaje m, Usuario u) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error añadir_Enfermedad(Enfermedad e, ListaEnfermedades l) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error eliminar_Enfermedad(Enfermedad e, ListaEnfermedades l) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error Añadir_Cita(Cita c, Medico m) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public Error Eliminar_cita(Cita c, Medico m) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
}
